package net.lab1024.sa.admin.module.sast.rule.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class RuleVO {

    /**
     * 规则全局标识
     */
    private String uuid;

    /**
     * 规则名称
     */
    private String name;

    /**
     * 规则的ID（如 java/missing-override-annotation）
     */
    private String ruleId;

    /**
     * 规则状态：1-准备好，2-实验中，3-已废弃
     */
    private Integer status;

    /**
     * 适用语言（如 java、python、javascript）
     */
    private String language;

    /**
     * 规则类型：1-security（安全），2-maintainability（可维护性），3-reliability（可靠性）
     */
    private List<Integer> ruleType;

    /**
     * CWE编号（如 79、89），仅安全类规则有效
     */
    private String cweId;

    /**
     * 规则描述，直接使用ql文件中的描述
     */
    private String shortDescription;


    /**
     * 问题类型：1-problem（点问题），2-path-problem（路径问题）
     */
    private Integer kind;

    /**
     * 精度等级：1-low，2-medium，3-high，4-very-high
     */
    private Integer detectionPrecision;

    /**
     * 问题严重性：1-error，2-warning，3-recommendation
     */
    private Integer problemSeverity;

    /**
     * security的严重分数，范围 0.0~10.0（仅安全类规则有效）
     */
    private BigDecimal securitySeverity;
    /**
     * 是否启用（1=是，0=否），便于动态开关
     */
    private Integer isEnabled;
    /**
     * 修复建议
     */
    private String recommendation;
}
